/*
 Problem Description
需要的时候，就把一个个大小差一圈的筐叠上去，使得从上往下看时，边筐花色交错。
这个工作现在要让计算机来完成，得看你的了。
Input
输入是一个个的三元组，分别是，外筐尺寸n（n为满足0<n<80的奇整数），中心花色字符，外筐花色字符，
后二者都为ASCII可见字符；
Output
输出叠在一起的筐图案，中心花色与外筐花色字符从内层起交错相叠，多筐相叠时，最外筐的角总是被打磨掉。
叠筐与叠筐之间应有一行间隔。
Sample Input
11 B A
5 @ W
Sample Output
 AAAAAAAAA 
ABBBBBBBBBA
ABAAAAAAABA
ABABBBBBABA
ABABAAABABA
ABABABABABA
ABABAAABABA
ABABBBBBABA
ABAAAAAAABA
ABBBBBBBBBA
 AAAAAAAAA 

 @@@ 
@WWW@
@W@W@
@WWW@
 @@@ 
 */
package com.yuan.algorithms.practice201504;

import java.util.Scanner;

public class 打印图形_叠筐循环实现 {

	public static void main(String[] args) {
		boolean ln = false;//标记换行
		Scanner sc = new Scanner(System.in);
		while (sc.hasNext()) {
			int n = sc.nextInt();
			char a = sc.next().charAt(0);
			char b = sc.next().charAt(0);
			boolean mark = (n / 2) % 2 != 0;// 标记打印的值（真为b，假为a）
			boolean t = !mark, p = mark;//标记多种情况
			if (ln) {
				System.out.println();
			}
			//特殊情况处理
			if (n == 1) {
				System.out.println(a);
				ln = true;
			} else {
				ln = true;
				for (int i = 0, k = 0; i < n; i++) {
					for (int j = 0; j < n; j++) {
						//边角的四个空格
						if ((i == 0 && (j == 0 || j == n - 1))
								|| (i == n - 1 && (j == 0 || j == n - 1))) {
							System.out.print(" ");
						} else if (i == 0 || i == n - 1 || j == 0 || j == n - 1) {
							//打印边框
							System.out.print(mark ? b : a);
						}else if (j>=k && j<n-k) {
							//打印中间的部分
							System.out.print(t ? b : a);
							if (j==n-k-1) {
								t = !t;
							}
						}else {
							//打印两边的部分
							if (j<k) {
								System.out.print(p ? a : b);
							}else {
								System.out.print(p ? b : a);
							}
							p = !p;
						}
					}
					System.out.println();
					k = i < n / 2 ? k + 1 : k - 1;
				}
			}
		}

	}

}
